<?php

namespace app\admin\controller;


use think\Db;
class Role extends AdminController
{


    public function select()
    {
        $list = Db::name('role')->order('id', 'ASC')->select();
//        dump($list);exit;
        return view('admin@role/index',['list'=>$list]);
    }

    public function add()
    {
        return view('admin@role/add');
    }

    public function doadd()
    {

//        dump(input('post.'));exit;
//        $p = $request->post();
        // $p = Request::instance()->post();
        // $p = input('post.');
//        var_dump($p);

//        dump(input('post.'));exit;
        $data = [
            'name' => input('post.name'),
            'status' => input('post.status'),
            'remark' => input('post.remark'),

        ];

//        var_dump($data);
        $result = Db::name('role')->data($data)->insert();

        if ($result > 0) {
            return $this->success('添加成功', url('admin/Role/select'));
        } else {
            return $this->error('添加失败');
        }


    }

    public function del($id)
    {
        //        dump($_GET);exit;
//        dump(input('get.id'));exit;
        $result = Db::name('role')->delete($id);
        if ($result > 0) {
            return $this->success('删除成功');
        } else {
            return $this->error('删除失败');
        }
    }

    public function update($id)
    {
        $date = Db::name('role')->find($id);
//        dump($date);exit;
        return view('admin@Role/update',['date'=> $date]);

    }

    public function doupdate($id)
    {
//        dump(input('post.'));
        $data = [
            'name' => input('post.name'),
            'status' => input('post.status'),
            'remark' => input('post.remark'),
        ];

//        dump($data);exit;

        $result = Db::name('role')->where('id',$id)->update($data);

        if ($result) {
            return $this->success('编辑成功',url('admin/Role/select'));
        } else {
            return $this->error('编辑失败');
        }


    }

    public function node($id)
    {
         
          // 角色名
        $rolename = Db::field('id, name')
            ->name('role')
            ->where('id', 'eq', $id)
            ->find();
        // dump($rolename);

        // 查询节点信息
        $query = Db::name('node')->select();
        // dump($query);
        // 获取当前角色的节点信息
        $data = Db::name('role_node')->where('rid', 'eq', $id)->select();
        // var_dump($data);
        
        $myrole = array();
        foreach ($data as $key => $value) {
            $myrole[] = $value['nid'];
        }
        // dump($myrole);die;
        //分配用户信息
        $this->assign("rolename",$rolename);
        //分配当前用户信息
        $this->assign('users',$query);
        //分配该用户的角色信息
        $this->assign('role',$myrole);
        return view('admin@role/node');

    }

    public function donode()
    {
        // dump(input('post.'));exit;
        //判读必须选择一个角色
            if(empty($_POST['cc'])){
                $this->error("请选择一个权限！");
            }

            $rid = $_POST['rid'];
         
            //清除角色所有的节点信息，避免重复添加
            Db::name('role_node')->where('rid', 'eq', $rid)->delete();
           
           // var_dump($_POST['cc']);die;
    
            foreach($_POST['cc'] as $v){
                $data['rid'] = $rid;
                $data['nid'] = $v;
                //执行添加
                // $this->_user_role->data($data)->add();
                $date = Db::name('role_node')->data($data)->insert();
                // var_dump($date);die;
            }

           if ($date) {
            return $this->success('权限添加成功',url('admin/Role/select'));
            } else {
                return $this->error('权限添加失败');
            }
    }
}
